import numpy as np
import matplotlib.pyplot as plt
import scipy.integrate as sci
import math

# 一重积分
fun=lambda x:3*x**2
a=0
b=2
# 五种求积分的函数
F1=sci.fixed_quad(fun,a,b)
F2=sci.quad(fun,a,b)
F3=sci.romberg(fun,a,b)
xi=np.linspace(0,2,100)
F4=sci.trapz(fun(xi),xi)
F5=sci.simps(fun(xi),xi)
print(F1)
print(F2)
print(F3)
print(F4)
print(F5)

# 定义法求积分
sum=0
for i in range(1,100):
    x=np.random.random(i*10)*(b-a)+a
    sum+=np.sum(fun(x))/len(x)*(b-a)
print(sum/99)

# 多重积分
